<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.11"/>
<title>Kinetis Bootloader: Context</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript">
  $(document).ready(initResizable);
  $(window).load(resizeHeight);
</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
  $(document).ready(function() { init_search(); });
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td id="projectlogo"><img alt="Logo" src="nxp_logo_small.png"/></td>
  <td id="projectalign" style="padding-left: 0.5em;">
   <div id="projectname">Kinetis Bootloader
   &#160;<span id="projectnumber">2.0.0</span>
   </div>
   <div id="projectbrief">Common bootloader for Kinetis devices</div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.11 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
  <div id="navrow1" class="tabs">
    <ul class="tablist">
      <li><a href="index.html"><span>Introduction</span></a></li>
      <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
      <li class="current"><a href="modules.html"><span>Modules</span></a></li>
      <li>
        <div id="MSearchBox" class="MSearchBoxInactive">
        <span class="left">
          <img id="MSearchSelect" src="search/mag_sel.png"
               onmouseover="return searchBox.OnSearchSelectShow()"
               onmouseout="return searchBox.OnSearchSelectHide()"
               alt=""/>
          <input type="text" id="MSearchField" value="Search" accesskey="S"
               onfocus="searchBox.OnSearchFieldFocus(true)" 
               onblur="searchBox.OnSearchFieldFocus(false)" 
               onkeyup="searchBox.OnSearchFieldChange(event)"/>
          </span><span class="right">
            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
          </span>
        </div>
      </li>
    </ul>
  </div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
  <div id="nav-tree">
    <div id="nav-tree-contents">
      <div id="nav-sync" class="sync"></div>
    </div>
  </div>
  <div id="splitbar" style="-moz-user-select:none;" 
       class="ui-resizable-handle">
  </div>
</div>
<script type="text/javascript">
$(document).ready(function(){initNavTree('group__context.html','');});
</script>
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0" 
        name="MSearchResults" id="MSearchResults">
</iframe>
</div>

<div class="header">
  <div class="summary">
<a href="#nested-classes">Data Structures</a> &#124;
<a href="#typedef-members">Typedefs</a> &#124;
<a href="#enum-members">Enumerations</a> &#124;
<a href="#var-members">Variables</a>  </div>
  <div class="headertitle">
<div class="title">Context<div class="ingroups"><a class="el" href="group__bootloader.html">Bootloader</a></div></div>  </div>
</div><!--header-->
<div class="contents">

<p>Bootloader context and API structures.  
<a href="#details">More...</a></p>
<div id="dynsection-0" onclick="return toggleVisibility(this)" class="dynheader closed" style="cursor:pointer;">
  <img id="dynsection-0-trigger" src="closed.png" alt="+"/> Collaboration diagram for Context:</div>
<div id="dynsection-0-summary" class="dynsummary" style="display:block;">
</div>
<div id="dynsection-0-content" class="dyncontent" style="display:none;">
<center><table><tr><td><div class="center"><iframe scrolling="no" frameborder="0" src="group__context.svg" width="506" height="54"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe>
</div>
</td></tr></table></center>
</div>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
Data Structures</h2></td></tr>
<tr class="memitem:structflash__driver__interface__t"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__context.html#structflash__driver__interface__t">flash_driver_interface_t</a></td></tr>
<tr class="memdesc:structflash__driver__interface__t"><td class="mdescLeft">&#160;</td><td class="mdescRight">Interface for the flash driver.  <a href="group__context.html#structflash__driver__interface__t">More...</a><br /></td></tr>
<tr class="separator:structflash__driver__interface__t"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:structaes__driver__interface__t"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__context.html#structaes__driver__interface__t">aes_driver_interface_t</a></td></tr>
<tr class="memdesc:structaes__driver__interface__t"><td class="mdescLeft">&#160;</td><td class="mdescRight">Interface for AES 128 functions.  <a href="group__context.html#structaes__driver__interface__t">More...</a><br /></td></tr>
<tr class="separator:structaes__driver__interface__t"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:structbootloader__context__t"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__context.html#structbootloader__context__t">bootloader_context_t</a></td></tr>
<tr class="memdesc:structbootloader__context__t"><td class="mdescLeft">&#160;</td><td class="mdescRight">Structure of bootloader global context.  <a href="group__context.html#structbootloader__context__t">More...</a><br /></td></tr>
<tr class="separator:structbootloader__context__t"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:structbootloader__tree__t"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__context.html#structbootloader__tree__t">bootloader_tree_t</a></td></tr>
<tr class="memdesc:structbootloader__tree__t"><td class="mdescLeft">&#160;</td><td class="mdescRight">Root of the bootloader API tree.  <a href="group__context.html#structbootloader__tree__t">More...</a><br /></td></tr>
<tr class="separator:structbootloader__tree__t"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="typedef-members"></a>
Typedefs</h2></td></tr>
<tr class="memitem:gad014384cf3f0a3e2f459896c50999693"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gad014384cf3f0a3e2f459896c50999693"></a>
typedef uint32_t&#160;</td><td class="memItemRight" valign="bottom"><b>flash_driver_interface_t</b></td></tr>
<tr class="separator:gad014384cf3f0a3e2f459896c50999693"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gada4486a25f2481e317d81ac8194739a5"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gada4486a25f2481e317d81ac8194739a5"></a>
typedef uint32_t&#160;</td><td class="memItemRight" valign="bottom"><b>flash_config_t</b></td></tr>
<tr class="separator:gada4486a25f2481e317d81ac8194739a5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gac399cdbd7fdfb5aaaea9245bf918b004"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gac399cdbd7fdfb5aaaea9245bf918b004"></a>
typedef uint32_t&#160;</td><td class="memItemRight" valign="bottom"><b>aes_driver_interface_t</b></td></tr>
<tr class="separator:gac399cdbd7fdfb5aaaea9245bf918b004"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="enum-members"></a>
Enumerations</h2></td></tr>
<tr class="memitem:ga59a0d6dbf53ffae7633c7b6c969b0039"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga59a0d6dbf53ffae7633c7b6c969b0039"></a>enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__context.html#ga59a0d6dbf53ffae7633c7b6c969b0039">_bootloader_version_constants</a> { <br />
&#160;&#160;<b>kBootloader_Version_Name</b> = 'K', 
<br />
&#160;&#160;<b>kBootloader_Version_Major</b> = 2, 
<br />
&#160;&#160;<b>kBootloader_Version_Minor</b> = 0, 
<br />
&#160;&#160;<b>kBootloader_Version_Bugfix</b> = 0
<br />
 }<tr class="memdesc:ga59a0d6dbf53ffae7633c7b6c969b0039"><td class="mdescLeft">&#160;</td><td class="mdescRight">Version constants for the bootloader. <br /></td></tr>
</td></tr>
<tr class="separator:ga59a0d6dbf53ffae7633c7b6c969b0039"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="var-members"></a>
Variables</h2></td></tr>
<tr class="memitem:ga065eb6b7a781dcc329dd6084c42d8eca"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__context.html#structbootloader__context__t">bootloader_context_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__context.html#ga065eb6b7a781dcc329dd6084c42d8eca">g_bootloaderContext</a></td></tr>
<tr class="memdesc:ga065eb6b7a781dcc329dd6084c42d8eca"><td class="mdescLeft">&#160;</td><td class="mdescRight">Bootloader global context data.  <a href="#ga065eb6b7a781dcc329dd6084c42d8eca">More...</a><br /></td></tr>
<tr class="separator:ga065eb6b7a781dcc329dd6084c42d8eca"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaaa16dfe472e0dad9fb3a72fc607a9655"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gaaa16dfe472e0dad9fb3a72fc607a9655"></a>
const <a class="el" href="group__context.html#structflash__driver__interface__t">flash_driver_interface_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__context.html#gaaa16dfe472e0dad9fb3a72fc607a9655">g_flashDriverInterface</a></td></tr>
<tr class="memdesc:gaaa16dfe472e0dad9fb3a72fc607a9655"><td class="mdescLeft">&#160;</td><td class="mdescRight">Function table for flash driver. <br /></td></tr>
<tr class="separator:gaaa16dfe472e0dad9fb3a72fc607a9655"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga08ad8dadd9978a9ce3483ad393343ca9"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga08ad8dadd9978a9ce3483ad393343ca9"></a>
const <a class="el" href="group__context.html#structaes__driver__interface__t">aes_driver_interface_t</a>&#160;</td><td class="memItemRight" valign="bottom"><b>g_aesInterface</b></td></tr>
<tr class="separator:ga08ad8dadd9978a9ce3483ad393343ca9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga065eb6b7a781dcc329dd6084c42d8eca"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__context.html#structbootloader__context__t">bootloader_context_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__context.html#ga065eb6b7a781dcc329dd6084c42d8eca">g_bootloaderContext</a></td></tr>
<tr class="memdesc:ga065eb6b7a781dcc329dd6084c42d8eca"><td class="mdescLeft">&#160;</td><td class="mdescRight">Bootloader global context data.  <a href="#ga065eb6b7a781dcc329dd6084c42d8eca">More...</a><br /></td></tr>
<tr class="separator:ga065eb6b7a781dcc329dd6084c42d8eca"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaaa16dfe472e0dad9fb3a72fc607a9655"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gaaa16dfe472e0dad9fb3a72fc607a9655"></a>
const <a class="el" href="group__context.html#structflash__driver__interface__t">flash_driver_interface_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__context.html#gaaa16dfe472e0dad9fb3a72fc607a9655">g_flashDriverInterface</a></td></tr>
<tr class="memdesc:gaaa16dfe472e0dad9fb3a72fc607a9655"><td class="mdescLeft">&#160;</td><td class="mdescRight">Function table for flash driver. <br /></td></tr>
<tr class="separator:gaaa16dfe472e0dad9fb3a72fc607a9655"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga08ad8dadd9978a9ce3483ad393343ca9"><td class="memItemLeft" align="right" valign="top">const <a class="el" href="group__context.html#structaes__driver__interface__t">aes_driver_interface_t</a>&#160;</td><td class="memItemRight" valign="bottom"><b>g_aesInterface</b></td></tr>
<tr class="separator:ga08ad8dadd9978a9ce3483ad393343ca9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gadd35bbb0642210428dd2bade877c9b4a"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gadd35bbb0642210428dd2bade877c9b4a"></a>
const char&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__context.html#gadd35bbb0642210428dd2bade877c9b4a">bootloaderCopyright</a> [] = &quot;Copyright (c) 2013-2016 Freescale Semiconductor, Inc. All rights reserved.&quot;</td></tr>
<tr class="memdesc:gadd35bbb0642210428dd2bade877c9b4a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Copyright string for the bootloader. <br /></td></tr>
<tr class="separator:gadd35bbb0642210428dd2bade877c9b4a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga9ed42be3edb4d7b831e010647c281ed4"><td class="memItemLeft" align="right" valign="top">const <a class="el" href="group__context.html#structbootloader__tree__t">bootloader_tree_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__context.html#ga9ed42be3edb4d7b831e010647c281ed4">g_bootloaderTree</a></td></tr>
<tr class="memdesc:ga9ed42be3edb4d7b831e010647c281ed4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Static API tree.  <a href="#ga9ed42be3edb4d7b831e010647c281ed4">More...</a><br /></td></tr>
<tr class="separator:ga9ed42be3edb4d7b831e010647c281ed4"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="member-group"></a>
Bootloader Entry Point</h2></td></tr>
<tr class="memitem:ga1af408d4ac511df02ef37e964b955522"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__context.html#ga1af408d4ac511df02ef37e964b955522">bootloader_user_entry</a> (void *arg)</td></tr>
<tr class="memdesc:ga1af408d4ac511df02ef37e964b955522"><td class="mdescLeft">&#160;</td><td class="mdescRight">Entry point called by a user application to run the bootloader.  <a href="#ga1af408d4ac511df02ef37e964b955522">More...</a><br /></td></tr>
<tr class="separator:ga1af408d4ac511df02ef37e964b955522"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Usage Information</h2>
<p>Bootloader context and API structures. </p>
<hr/><h2 class="groupheader">Data Structure Documentation</h2>
<a name="structflash__driver__interface__t" id="structflash__driver__interface__t"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">struct flash_driver_interface_t</td>
        </tr>
      </table>
</div><div class="memdoc">
<div class="textblock"><p>Interface for the flash driver. </p>
</div><div id="dynsection-1" onclick="return toggleVisibility(this)" class="dynheader closed" style="cursor:pointer;">
  <img id="dynsection-1-trigger" src="closed.png" alt="+"/> Collaboration diagram for flash_driver_interface_t:</div>
<div id="dynsection-1-summary" class="dynsummary" style="display:block;">
</div>
<div id="dynsection-1-content" class="dyncontent" style="display:none;">
<div class="center"><iframe scrolling="no" frameborder="0" src="structflash__driver__interface__t__coll__graph.svg" width="164" height="127"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe>
</div>
<center><span class="legend">[<a target="top" href="graph_legend.html">legend</a>]</span></center></div>
<table class="memberdecls">
<tr><td colspan="2"><h3>Data Fields</h3></td></tr>
<tr class="memitem:ab5805c535f737e9a32670f5a45b50add"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ab5805c535f737e9a32670f5a45b50add"></a>
<a class="el" href="group__bl__core.html#unionstandard__version__t">standard_version_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__context.html#ab5805c535f737e9a32670f5a45b50add">version</a></td></tr>
<tr class="memdesc:ab5805c535f737e9a32670f5a45b50add"><td class="mdescLeft">&#160;</td><td class="mdescRight">flash driver API version number. <br /></td></tr>
<tr class="separator:ab5805c535f737e9a32670f5a45b50add"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8b4a645d0d8ea02b82e51dc2f1f078d9"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a8b4a645d0d8ea02b82e51dc2f1f078d9"></a>
<a class="el" href="group__ksdk__common.html#gaaabdaf7ee58ca7269bd4bf24efcde092">status_t</a>(*&#160;</td><td class="memItemRight" valign="bottom"><b>flash_init</b> )(<a class="el" href="group__flash__driver.html#structflash__config__t">flash_config_t</a> *config)</td></tr>
<tr class="separator:a8b4a645d0d8ea02b82e51dc2f1f078d9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2789477fc5d6e9f3bc5263f75917e75f"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a2789477fc5d6e9f3bc5263f75917e75f"></a>
<a class="el" href="group__ksdk__common.html#gaaabdaf7ee58ca7269bd4bf24efcde092">status_t</a>(*&#160;</td><td class="memItemRight" valign="bottom"><b>flash_erase_all</b> )(<a class="el" href="group__flash__driver.html#structflash__config__t">flash_config_t</a> *config, uint32_t key)</td></tr>
<tr class="separator:a2789477fc5d6e9f3bc5263f75917e75f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7a8f8ddd13a7ce19e3976d86ab2da2e0"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a7a8f8ddd13a7ce19e3976d86ab2da2e0"></a>
<a class="el" href="group__ksdk__common.html#gaaabdaf7ee58ca7269bd4bf24efcde092">status_t</a>(*&#160;</td><td class="memItemRight" valign="bottom"><b>flash_erase_all_unsecure</b> )(<a class="el" href="group__flash__driver.html#structflash__config__t">flash_config_t</a> *config, uint32_t key)</td></tr>
<tr class="separator:a7a8f8ddd13a7ce19e3976d86ab2da2e0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a62f3ed8584436c63c664cf06f1622f1f"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a62f3ed8584436c63c664cf06f1622f1f"></a>
<a class="el" href="group__ksdk__common.html#gaaabdaf7ee58ca7269bd4bf24efcde092">status_t</a>(*&#160;</td><td class="memItemRight" valign="bottom"><b>flash_erase</b> )(<a class="el" href="group__flash__driver.html#structflash__config__t">flash_config_t</a> *config, uint32_t start, uint32_t lengthInBytes, uint32_t key)</td></tr>
<tr class="separator:a62f3ed8584436c63c664cf06f1622f1f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad7c734e1aea834892d43f835841272a2"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ad7c734e1aea834892d43f835841272a2"></a>
<a class="el" href="group__ksdk__common.html#gaaabdaf7ee58ca7269bd4bf24efcde092">status_t</a>(*&#160;</td><td class="memItemRight" valign="bottom"><b>flash_program</b> )(<a class="el" href="group__flash__driver.html#structflash__config__t">flash_config_t</a> *config, uint32_t start, uint32_t *src, uint32_t lengthInBytes)</td></tr>
<tr class="separator:ad7c734e1aea834892d43f835841272a2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae62ef689e92fd5ac5c8c23bf1f60d7be"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ae62ef689e92fd5ac5c8c23bf1f60d7be"></a>
<a class="el" href="group__ksdk__common.html#gaaabdaf7ee58ca7269bd4bf24efcde092">status_t</a>(*&#160;</td><td class="memItemRight" valign="bottom"><b>flash_get_security_state</b> )(<a class="el" href="group__flash__driver.html#structflash__config__t">flash_config_t</a> *config, <a class="el" href="group__flash__driver.html#ga00b3eb2666116e617f6e45a10218f6a9">flash_security_state_t</a> *state)</td></tr>
<tr class="separator:ae62ef689e92fd5ac5c8c23bf1f60d7be"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a060b6cfef7ed45e1b3e454a2873c78fa"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a060b6cfef7ed45e1b3e454a2873c78fa"></a>
<a class="el" href="group__ksdk__common.html#gaaabdaf7ee58ca7269bd4bf24efcde092">status_t</a>(*&#160;</td><td class="memItemRight" valign="bottom"><b>flash_security_bypass</b> )(<a class="el" href="group__flash__driver.html#structflash__config__t">flash_config_t</a> *config, const uint8_t *backdoorKey)</td></tr>
<tr class="separator:a060b6cfef7ed45e1b3e454a2873c78fa"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a07cb338c9a2d5574d00d38d4f1212a2f"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a07cb338c9a2d5574d00d38d4f1212a2f"></a>
<a class="el" href="group__ksdk__common.html#gaaabdaf7ee58ca7269bd4bf24efcde092">status_t</a>(*&#160;</td><td class="memItemRight" valign="bottom"><b>flash_verify_erase_all</b> )(<a class="el" href="group__flash__driver.html#structflash__config__t">flash_config_t</a> *config, <a class="el" href="group__flash__driver.html#ga2105f5de393a06479e62141dab8dd3fc">flash_margin_value_t</a> margin)</td></tr>
<tr class="separator:a07cb338c9a2d5574d00d38d4f1212a2f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a067bf0aad5d33df40cb78c6a0ec46bea"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a067bf0aad5d33df40cb78c6a0ec46bea"></a>
<a class="el" href="group__ksdk__common.html#gaaabdaf7ee58ca7269bd4bf24efcde092">status_t</a>(*&#160;</td><td class="memItemRight" valign="bottom"><b>flash_verify_erase</b> )(<a class="el" href="group__flash__driver.html#structflash__config__t">flash_config_t</a> *config, uint32_t start, uint32_t lengthInBytes, <a class="el" href="group__flash__driver.html#ga2105f5de393a06479e62141dab8dd3fc">flash_margin_value_t</a> margin)</td></tr>
<tr class="separator:a067bf0aad5d33df40cb78c6a0ec46bea"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af12a1e75a4798cdbe0eb4529a877c888"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="af12a1e75a4798cdbe0eb4529a877c888"></a>
<a class="el" href="group__ksdk__common.html#gaaabdaf7ee58ca7269bd4bf24efcde092">status_t</a>(*&#160;</td><td class="memItemRight" valign="bottom"><b>flash_verify_program</b> )(<a class="el" href="group__flash__driver.html#structflash__config__t">flash_config_t</a> *config, uint32_t start, uint32_t lengthInBytes, const uint32_t *expectedData, <a class="el" href="group__flash__driver.html#ga2105f5de393a06479e62141dab8dd3fc">flash_margin_value_t</a> margin, uint32_t *failedAddress, uint32_t *failedData)</td></tr>
<tr class="separator:af12a1e75a4798cdbe0eb4529a877c888"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa1a281af484c9279b52c27120a2aef00"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aa1a281af484c9279b52c27120a2aef00"></a>
<a class="el" href="group__ksdk__common.html#gaaabdaf7ee58ca7269bd4bf24efcde092">status_t</a>(*&#160;</td><td class="memItemRight" valign="bottom"><b>flash_get_property</b> )(<a class="el" href="group__flash__driver.html#structflash__config__t">flash_config_t</a> *config, <a class="el" href="group__flash__driver.html#ga7b6766fe08a63cf92a5e2a90dd6d010f">flash_property_tag_t</a> whichProperty, uint32_t *value)</td></tr>
<tr class="separator:aa1a281af484c9279b52c27120a2aef00"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af1ce9b28abd6e2905efb05f43f1be73e"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="af1ce9b28abd6e2905efb05f43f1be73e"></a>
<a class="el" href="group__ksdk__common.html#gaaabdaf7ee58ca7269bd4bf24efcde092">status_t</a>(*&#160;</td><td class="memItemRight" valign="bottom"><b>flash_register_callback</b> )(<a class="el" href="group__flash__driver.html#structflash__config__t">flash_config_t</a> *config, <a class="el" href="group__flash__driver__api.html#ga67c22466713ef09903b07a56e1c2a050">flash_callback_t</a> callback)</td></tr>
<tr class="separator:af1ce9b28abd6e2905efb05f43f1be73e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4e63a5fafd762f379681dfb239c4c39a"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a4e63a5fafd762f379681dfb239c4c39a"></a>
<a class="el" href="group__ksdk__common.html#gaaabdaf7ee58ca7269bd4bf24efcde092">status_t</a>(*&#160;</td><td class="memItemRight" valign="bottom"><b>flash_program_once</b> )(<a class="el" href="group__flash__driver.html#structflash__config__t">flash_config_t</a> *config, uint32_t index, uint32_t *src, uint32_t lengthInBytes)</td></tr>
<tr class="separator:a4e63a5fafd762f379681dfb239c4c39a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a817da7c63f040a0a0d84a0d223b8feec"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a817da7c63f040a0a0d84a0d223b8feec"></a>
<a class="el" href="group__ksdk__common.html#gaaabdaf7ee58ca7269bd4bf24efcde092">status_t</a>(*&#160;</td><td class="memItemRight" valign="bottom"><b>flash_read_once</b> )(<a class="el" href="group__flash__driver.html#structflash__config__t">flash_config_t</a> *config, uint32_t index, uint32_t *dst, uint32_t lengthInBytes)</td></tr>
<tr class="separator:a817da7c63f040a0a0d84a0d223b8feec"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aee5930e8f55d2b59d6427d02db01c3a7"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aee5930e8f55d2b59d6427d02db01c3a7"></a>
<a class="el" href="group__ksdk__common.html#gaaabdaf7ee58ca7269bd4bf24efcde092">status_t</a>(*&#160;</td><td class="memItemRight" valign="bottom"><b>flash_read_resource</b> )(<a class="el" href="group__flash__driver.html#structflash__config__t">flash_config_t</a> *config, uint32_t start, uint32_t *dst, uint32_t lengthInBytes, <a class="el" href="group__flash__driver.html#ga70d45ebc64d50e9868f7016c8a417c51">flash_read_resource_option_t</a> option)</td></tr>
<tr class="separator:aee5930e8f55d2b59d6427d02db01c3a7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af588964786a956b326705a5965bb05db"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="af588964786a956b326705a5965bb05db"></a>
<a class="el" href="group__ksdk__common.html#gaaabdaf7ee58ca7269bd4bf24efcde092">status_t</a>(*&#160;</td><td class="memItemRight" valign="bottom"><b>flash_prepare_execute_in_ram_functions</b> )(<a class="el" href="group__flash__driver.html#structflash__config__t">flash_config_t</a> *config)</td></tr>
<tr class="separator:af588964786a956b326705a5965bb05db"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4225b362470373d980aa3cc2c2d4691e"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a4225b362470373d980aa3cc2c2d4691e"></a>
<a class="el" href="group__ksdk__common.html#gaaabdaf7ee58ca7269bd4bf24efcde092">status_t</a>(*&#160;</td><td class="memItemRight" valign="bottom"><b>flash_is_execute_only</b> )(<a class="el" href="group__flash__driver.html#structflash__config__t">flash_config_t</a> *config, uint32_t start, uint32_t lengthInBytes, <a class="el" href="group__flash__driver.html#gad38961e5692f64548dbf84d652b9ccde">flash_execute_only_access_state_t</a> *access_state)</td></tr>
<tr class="separator:a4225b362470373d980aa3cc2c2d4691e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3f638fe3fd661f5607e581f8244a9b41"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a3f638fe3fd661f5607e581f8244a9b41"></a>
<a class="el" href="group__ksdk__common.html#gaaabdaf7ee58ca7269bd4bf24efcde092">status_t</a>(*&#160;</td><td class="memItemRight" valign="bottom"><b>flash_erase_all_execute_only_segments</b> )(<a class="el" href="group__flash__driver.html#structflash__config__t">flash_config_t</a> *config, uint32_t key)</td></tr>
<tr class="separator:a3f638fe3fd661f5607e581f8244a9b41"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9b8dff2d3ee44573ba51ba98a7243c11"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a9b8dff2d3ee44573ba51ba98a7243c11"></a>
<a class="el" href="group__ksdk__common.html#gaaabdaf7ee58ca7269bd4bf24efcde092">status_t</a>(*&#160;</td><td class="memItemRight" valign="bottom"><b>flash_verify_erase_all_execute_only_segments</b> )(<a class="el" href="group__flash__driver.html#structflash__config__t">flash_config_t</a> *config, <a class="el" href="group__flash__driver.html#ga2105f5de393a06479e62141dab8dd3fc">flash_margin_value_t</a> margin)</td></tr>
<tr class="separator:a9b8dff2d3ee44573ba51ba98a7243c11"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2a7674a9b2a83cc985aaf05bd6832529"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a2a7674a9b2a83cc985aaf05bd6832529"></a>
<a class="el" href="group__ksdk__common.html#gaaabdaf7ee58ca7269bd4bf24efcde092">status_t</a>(*&#160;</td><td class="memItemRight" valign="bottom"><b>flash_set_flexram_function</b> )(<a class="el" href="group__flash__driver.html#structflash__config__t">flash_config_t</a> *config, <a class="el" href="group__flash__driver.html#ga3812bab3ef6aacfbe889b1a81e25c76d">flash_flexram_function_option_t</a> option)</td></tr>
<tr class="separator:a2a7674a9b2a83cc985aaf05bd6832529"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa1d1de50a6b5a4016ba021a87353ae89"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aa1d1de50a6b5a4016ba021a87353ae89"></a>
<a class="el" href="group__ksdk__common.html#gaaabdaf7ee58ca7269bd4bf24efcde092">status_t</a>(*&#160;</td><td class="memItemRight" valign="bottom"><b>flash_program_section</b> )(<a class="el" href="group__flash__driver.html#structflash__config__t">flash_config_t</a> *config, uint32_t start, uint32_t *src, uint32_t lengthInBytes)</td></tr>
<tr class="separator:aa1d1de50a6b5a4016ba021a87353ae89"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>

</div>
</div>
<a name="structaes__driver__interface__t" id="structaes__driver__interface__t"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">struct aes_driver_interface_t</td>
        </tr>
      </table>
</div><div class="memdoc">
<div class="textblock"><p>Interface for AES 128 functions. </p>
</div><table class="memberdecls">
<tr><td colspan="2"><h3>Data Fields</h3></td></tr>
<tr class="memitem:a666a93d687f1dc6b35a63ce08b35428d"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a666a93d687f1dc6b35a63ce08b35428d"></a>
void(*&#160;</td><td class="memItemRight" valign="bottom"><b>aes_init</b> )(uint32_t *key)</td></tr>
<tr class="separator:a666a93d687f1dc6b35a63ce08b35428d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a08eb68a891ba33dc6584cb8d286f3d5b"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a08eb68a891ba33dc6584cb8d286f3d5b"></a>
void(*&#160;</td><td class="memItemRight" valign="bottom"><b>aes_encrypt</b> )(uint32_t *in, uint32_t *key, uint32_t *out)</td></tr>
<tr class="separator:a08eb68a891ba33dc6584cb8d286f3d5b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac42dceaa1c862c40f9cd4548f78f096e"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ac42dceaa1c862c40f9cd4548f78f096e"></a>
void(*&#160;</td><td class="memItemRight" valign="bottom"><b>aes_decrypt</b> )(uint32_t *in, uint32_t *key, uint32_t *out)</td></tr>
<tr class="separator:ac42dceaa1c862c40f9cd4548f78f096e"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>

</div>
</div>
<a name="structbootloader__context__t" id="structbootloader__context__t"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">struct bootloader_context_t</td>
        </tr>
      </table>
</div><div class="memdoc">
<div class="textblock"><p>Structure of bootloader global context. </p>
</div><div id="dynsection-2" onclick="return toggleVisibility(this)" class="dynheader closed" style="cursor:pointer;">
  <img id="dynsection-2-trigger" src="closed.png" alt="+"/> Collaboration diagram for bootloader_context_t:</div>
<div id="dynsection-2-summary" class="dynsummary" style="display:block;">
</div>
<div id="dynsection-2-content" class="dyncontent" style="display:none;">
<div class="center"><iframe scrolling="no" frameborder="0" src="structbootloader__context__t__coll__graph.svg" width="1250" height="464"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe>
</div>
<center><span class="legend">[<a target="top" href="graph_legend.html">legend</a>]</span></center></div>
<table class="fieldtable">
<tr><th colspan="3">Data Fields</th></tr>
<tr><td class="fieldtype">
<a class="anchor" id="a7048d7a14cb182cb8cfe1e225ec786d4"></a>const peripheral_descriptor_t *</td>
<td class="fieldname">
activePeripheral</td>
<td class="fielddoc">
The currently active peripheral. </td></tr>
<tr><td class="fieldtype">
<a class="anchor" id="ab0ab27a010fc8dc20932a7bd9a25e43d"></a>const <a class="el" href="group__context.html#structaes__driver__interface__t">aes_driver_interface_t</a> *</td>
<td class="fieldname">
aesInterface</td>
<td class="fielddoc">
Interface to the AES driver. </td></tr>
<tr><td class="fieldtype">
<a class="anchor" id="ad5a8038549eac658b93f25541d7d9830"></a>const peripheral_descriptor_t *</td>
<td class="fieldname">
allPeripherals</td>
<td class="fielddoc">
Array of all peripherals. </td></tr>
<tr><td class="fieldtype">
<a class="anchor" id="ac109d6fb8e682e9c70002a2633e4d7f8"></a>const <a class="el" href="group__command.html#structcommand__interface__t">command_interface_t</a> *</td>
<td class="fieldname">
commandInterface</td>
<td class="fielddoc">
Interface to command processor operations. </td></tr>
<tr><td class="fieldtype">
<a class="anchor" id="a0fbd8a75a61fc2a1cee891016dfd4b36"></a>const <a class="el" href="group__context.html#structflash__driver__interface__t">flash_driver_interface_t</a> *</td>
<td class="fieldname">
flashDriverInterface</td>
<td class="fielddoc">
Flash driver interface. </td></tr>
<tr><td class="fieldtype">
<a class="anchor" id="a951f0b8e3ed586e500b334a070ee9112"></a><a class="el" href="group__flash__driver.html#structflash__config__t">flash_config_t</a></td>
<td class="fieldname">
flashState</td>
<td class="fielddoc">
Flash driver instance. </td></tr>
<tr><td class="fieldtype">
<a class="anchor" id="af5c8a83b43f836d5e6589a14fca32d38"></a>const <a class="el" href="group__memif.html#structmemory__interface__t">memory_interface_t</a> *</td>
<td class="fieldname">
memoryInterface</td>
<td class="fielddoc">
Abstract interface to memory operations. </td></tr>
<tr><td class="fieldtype">
<a class="anchor" id="a2f6fd28824e65401a365bd7066cd5ee0"></a>const <a class="el" href="group__memif.html#structmemory__map__entry__t">memory_map_entry_t</a> *</td>
<td class="fieldname">
memoryMap</td>
<td class="fielddoc">
Memory map used by abstract memory interface. </td></tr>
<tr><td class="fieldtype">
<a class="anchor" id="ad292322312a5795a1ea52df74ed0b196"></a>const <a class="el" href="group__property.html#structproperty__interface__t">property_interface_t</a> *</td>
<td class="fieldname">
propertyInterface</td>
<td class="fielddoc">
Interface to property store. </td></tr>
</table>

</div>
</div>
<a name="structbootloader__tree__t" id="structbootloader__tree__t"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">struct bootloader_tree_t</td>
        </tr>
      </table>
</div><div class="memdoc">
<div class="textblock"><p>Root of the bootloader API tree. </p>
<p>An instance of this struct resides in read-only memory in the bootloader. It provides a user application access to APIs exported by the bootloader.</p>
<dl class="section note"><dt>Note</dt><dd>The order of existing fields must not be changed. </dd></dl>
</div><div id="dynsection-3" onclick="return toggleVisibility(this)" class="dynheader closed" style="cursor:pointer;">
  <img id="dynsection-3-trigger" src="closed.png" alt="+"/> Collaboration diagram for bootloader_tree_t:</div>
<div id="dynsection-3-summary" class="dynsummary" style="display:block;">
</div>
<div id="dynsection-3-content" class="dyncontent" style="display:none;">
<div class="center"><iframe scrolling="no" frameborder="0" src="structbootloader__tree__t__coll__graph.svg" width="1470" height="570"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe>
</div>
<center><span class="legend">[<a target="top" href="graph_legend.html">legend</a>]</span></center></div>
<table class="memberdecls">
<tr><td colspan="2"><h3>Data Fields</h3></td></tr>
<tr class="memitem:af220392e9a65fe372d7461dcee5e5646"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="af220392e9a65fe372d7461dcee5e5646"></a>
void(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__context.html#af220392e9a65fe372d7461dcee5e5646">runBootloader</a> )(void *arg)</td></tr>
<tr class="memdesc:af220392e9a65fe372d7461dcee5e5646"><td class="mdescLeft">&#160;</td><td class="mdescRight">Function to start the bootloader executing. <br /></td></tr>
<tr class="separator:af220392e9a65fe372d7461dcee5e5646"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab5805c535f737e9a32670f5a45b50add"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ab5805c535f737e9a32670f5a45b50add"></a>
<a class="el" href="group__bl__core.html#unionstandard__version__t">standard_version_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__context.html#ab5805c535f737e9a32670f5a45b50add">version</a></td></tr>
<tr class="memdesc:ab5805c535f737e9a32670f5a45b50add"><td class="mdescLeft">&#160;</td><td class="mdescRight">Bootloader version number. <br /></td></tr>
<tr class="separator:ab5805c535f737e9a32670f5a45b50add"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a13776449af03dd383861adddf9019515"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a13776449af03dd383861adddf9019515"></a>
const char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__context.html#a13776449af03dd383861adddf9019515">copyright</a></td></tr>
<tr class="memdesc:a13776449af03dd383861adddf9019515"><td class="mdescLeft">&#160;</td><td class="mdescRight">Copyright string. <br /></td></tr>
<tr class="separator:a13776449af03dd383861adddf9019515"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:adcb8c3c5ae5cf37d00a4b6fb40c131cb"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="adcb8c3c5ae5cf37d00a4b6fb40c131cb"></a>
const <a class="el" href="group__context.html#structbootloader__context__t">bootloader_context_t</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__context.html#adcb8c3c5ae5cf37d00a4b6fb40c131cb">runtimeContext</a></td></tr>
<tr class="memdesc:adcb8c3c5ae5cf37d00a4b6fb40c131cb"><td class="mdescLeft">&#160;</td><td class="mdescRight">Pointer to the bootloader's runtime context. <br /></td></tr>
<tr class="separator:adcb8c3c5ae5cf37d00a4b6fb40c131cb"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab932c172aec4521e6669bf8ae5636e54"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ab932c172aec4521e6669bf8ae5636e54"></a>
const <a class="el" href="group__context.html#structflash__driver__interface__t">flash_driver_interface_t</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__context.html#ab932c172aec4521e6669bf8ae5636e54">flashDriver</a></td></tr>
<tr class="memdesc:ab932c172aec4521e6669bf8ae5636e54"><td class="mdescLeft">&#160;</td><td class="mdescRight">Flash driver API. <br /></td></tr>
<tr class="separator:ab932c172aec4521e6669bf8ae5636e54"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a88e810f7a816ce480d545adbde2f1e09"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a88e810f7a816ce480d545adbde2f1e09"></a>
const <a class="el" href="group__context.html#structaes__driver__interface__t">aes_driver_interface_t</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__context.html#a88e810f7a816ce480d545adbde2f1e09">aesDriver</a></td></tr>
<tr class="memdesc:a88e810f7a816ce480d545adbde2f1e09"><td class="mdescLeft">&#160;</td><td class="mdescRight">AES driver API. <br /></td></tr>
<tr class="separator:a88e810f7a816ce480d545adbde2f1e09"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af3d5fd3a6826d2f1f2b22b09550a9a6b"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="af3d5fd3a6826d2f1f2b22b09550a9a6b"></a>
<a class="el" href="group__bl__core.html#unionstandard__version__t">standard_version_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__context.html#af3d5fd3a6826d2f1f2b22b09550a9a6b">bootloader_version</a></td></tr>
<tr class="memdesc:af3d5fd3a6826d2f1f2b22b09550a9a6b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Bootloader version number. <br /></td></tr>
<tr class="separator:af3d5fd3a6826d2f1f2b22b09550a9a6b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad9e4f67784c889a437784bc02f7d4779"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ad9e4f67784c889a437784bc02f7d4779"></a>
const uint32_t *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__context.html#ad9e4f67784c889a437784bc02f7d4779">reserved</a></td></tr>
<tr class="memdesc:ad9e4f67784c889a437784bc02f7d4779"><td class="mdescLeft">&#160;</td><td class="mdescRight">Do NOT use. <br /></td></tr>
<tr class="separator:ad9e4f67784c889a437784bc02f7d4779"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>

</div>
</div>
<h2 class="groupheader">Function Documentation</h2>
<a class="anchor" id="ga1af408d4ac511df02ef37e964b955522"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void bootloader_user_entry </td>
          <td>(</td>
          <td class="paramtype">void *&#160;</td>
          <td class="paramname"><em>arg</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Entry point called by a user application to run the bootloader. </p>
<p>For ROM targets, this function configures the RCM_FM register so that the ROM will execute automatically out of reset. Then the system is reset.</p>
<p>Flash-resident configurations just call the reset handler as the entry point, since there is no way to automatically get back into the bootloader out of reset (or at least no guaranteed way).</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">arg</td><td>For future expansion. Currently unused.</td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<h2 class="groupheader">Variable Documentation</h2>
<a class="anchor" id="ga08ad8dadd9978a9ce3483ad393343ca9"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">const <a class="el" href="group__context.html#structaes__driver__interface__t">aes_driver_interface_t</a> g_aesInterface</td>
        </tr>
      </table>
</div><div class="memdoc">
<b>Initial value:</b><div class="fragment"><div class="line">= {</div><div class="line"><span class="preprocessor">#if AES_SECURITY_SUPPORTED</span></div><div class="line">    .aes_init = <a class="code" href="group__aes__security.html#ga126d11611a246e256a919226e9f543cc">aes_init</a>, .aes_encrypt = <a class="code" href="group__aes__security.html#ga7cc0d7eb12cfe64c6712381753c9c677">aes_encrypt</a>, .aes_decrypt = <a class="code" href="group__aes__security.html#gaf25d367b958671d9bee4e16cc87386cb">aes_decrypt</a></div><div class="line">}</div><div class="ttc" id="group__aes__security_html_ga126d11611a246e256a919226e9f543cc"><div class="ttname"><a href="group__aes__security.html#ga126d11611a246e256a919226e9f543cc">aes_init</a></div><div class="ttdeci">void aes_init(uint32_t *key)</div><div class="ttdoc">An initialization function for the decryption peripheral Warning: The key must be word aligned...</div><div class="ttdef"><b>Definition:</b> aes_security.c:79</div></div>
<div class="ttc" id="group__aes__security_html_gaf25d367b958671d9bee4e16cc87386cb"><div class="ttname"><a href="group__aes__security.html#gaf25d367b958671d9bee4e16cc87386cb">aes_decrypt</a></div><div class="ttdeci">void aes_decrypt(uint32_t *in, uint32_t *key, uint32_t *out)</div><div class="ttdoc">Decrypts a 16 byte block of data in and out may use the same address so decrypting in place is suppor...</div><div class="ttdef"><b>Definition:</b> aes_security.c:138</div></div>
<div class="ttc" id="group__aes__security_html_ga7cc0d7eb12cfe64c6712381753c9c677"><div class="ttname"><a href="group__aes__security.html#ga7cc0d7eb12cfe64c6712381753c9c677">aes_encrypt</a></div><div class="ttdeci">void aes_encrypt(uint32_t *in, uint32_t *key, uint32_t *out)</div><div class="ttdoc">Encrypts a 16 byte block of data in and out may use the same address so encrypting in place is suppor...</div><div class="ttdef"><b>Definition:</b> aes_security.c:113</div></div>
</div><!-- fragment -->
</div>
</div>
<a class="anchor" id="ga065eb6b7a781dcc329dd6084c42d8eca"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__context.html#structbootloader__context__t">bootloader_context_t</a> g_bootloaderContext</td>
        </tr>
      </table>
</div><div class="memdoc">
<b>Initial value:</b><div class="fragment"><div class="line">= {.memoryInterface = &amp;<a class="code" href="group__memif.html#gaa7d0fb25995fae36c7bfd95619857a84">g_memoryInterface</a>,</div><div class="line">                                            .memoryMap = <a class="code" href="group__memif.html#ga0cc5deda096db2c6f7022ae58c8e594f">g_memoryMap</a>,</div><div class="line">                                            .allPeripherals = <a class="code" href="group__peripheral.html#ga22fd965b66d458850f2f8ab9c594f56a">g_peripherals</a>,</div><div class="line">                                            .activePeripheral = NULL, </div><div class="line">                                            .propertyInterface = &amp;<a class="code" href="group__property.html#gad8dab4c1ea0544ba4b590f0417be98bd">g_propertyInterface</a>,</div><div class="line">                                            .commandInterface = &amp;<a class="code" href="group__command.html#gaef6ced967f75aa2ecbf6fd008286ac1d">g_commandInterface</a>,</div><div class="line">                                            .flashDriverInterface = &amp;<a class="code" href="group__context.html#gaaa16dfe472e0dad9fb3a72fc607a9655">g_flashDriverInterface</a>,</div><div class="line"><span class="preprocessor">#if AES_SECURITY_SUPPORTED</span></div><div class="line">                                            .aesInterface = &amp;g_aesInterface</div><div class="line"><span class="preprocessor">#endif</span></div><div class="line"><span class="preprocessor">}</span></div><div class="ttc" id="group__command_html_gaef6ced967f75aa2ecbf6fd008286ac1d"><div class="ttname"><a href="group__command.html#gaef6ced967f75aa2ecbf6fd008286ac1d">g_commandInterface</a></div><div class="ttdeci">command_interface_t g_commandInterface</div><div class="ttdoc">Default command interface. </div><div class="ttdef"><b>Definition:</b> bl_command.c:207</div></div>
<div class="ttc" id="group__property_html_gad8dab4c1ea0544ba4b590f0417be98bd"><div class="ttname"><a href="group__property.html#gad8dab4c1ea0544ba4b590f0417be98bd">g_propertyInterface</a></div><div class="ttdeci">const property_interface_t g_propertyInterface</div><div class="ttdoc">Property interface. </div><div class="ttdef"><b>Definition:</b> property.c:100</div></div>
<div class="ttc" id="group__memif_html_gaa7d0fb25995fae36c7bfd95619857a84"><div class="ttname"><a href="group__memif.html#gaa7d0fb25995fae36c7bfd95619857a84">g_memoryInterface</a></div><div class="ttdeci">const memory_interface_t g_memoryInterface</div><div class="ttdoc">Abstract memory interface. </div><div class="ttdef"><b>Definition:</b> memory.c:59</div></div>
<div class="ttc" id="group__peripheral_html_ga22fd965b66d458850f2f8ab9c594f56a"><div class="ttname"><a href="group__peripheral.html#ga22fd965b66d458850f2f8ab9c594f56a">g_peripherals</a></div><div class="ttdeci">const peripheral_descriptor_t g_peripherals[]</div><div class="ttdoc">Array of all peripherals available in this device. </div><div class="ttdef"><b>Definition:</b> MK65F18/src/bus_pal_hardware.c:206</div></div>
<div class="ttc" id="group__memif_html_ga0cc5deda096db2c6f7022ae58c8e594f"><div class="ttname"><a href="group__memif.html#ga0cc5deda096db2c6f7022ae58c8e594f">g_memoryMap</a></div><div class="ttdeci">memory_map_entry_t g_memoryMap[]</div><div class="ttdoc">Memory map for the system. </div></div>
<div class="ttc" id="group__context_html_gaaa16dfe472e0dad9fb3a72fc607a9655"><div class="ttname"><a href="group__context.html#gaaa16dfe472e0dad9fb3a72fc607a9655">g_flashDriverInterface</a></div><div class="ttdeci">const flash_driver_interface_t g_flashDriverInterface</div><div class="ttdoc">Function table for flash driver. </div><div class="ttdef"><b>Definition:</b> bl_tree_root.c:46</div></div>
</div><!-- fragment -->
<p>Bootloader global context data. </p>

</div>
</div>
<a class="anchor" id="ga065eb6b7a781dcc329dd6084c42d8eca"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__context.html#structbootloader__context__t">bootloader_context_t</a> g_bootloaderContext</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Bootloader global context data. </p>

</div>
</div>
<a class="anchor" id="ga9ed42be3edb4d7b831e010647c281ed4"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">const <a class="el" href="group__context.html#structbootloader__tree__t">bootloader_tree_t</a> g_bootloaderTree</td>
        </tr>
      </table>
</div><div class="memdoc">
<b>Initial value:</b><div class="fragment"><div class="line">= {.runBootloader = <a class="code" href="group__context.html#ga1af408d4ac511df02ef37e964b955522">bootloader_user_entry</a>,</div><div class="line">                                            .version = {.name = kBootloader_Version_Name,</div><div class="line">                                                        .major = kBootloader_Version_Major,</div><div class="line">                                                        .minor = kBootloader_Version_Minor,</div><div class="line">                                                        .bugfix = kBootloader_Version_Bugfix },</div><div class="line">                                            .copyright = <a class="code" href="group__context.html#gadd35bbb0642210428dd2bade877c9b4a">bootloaderCopyright</a>,</div><div class="line">                                            .runtimeContext = &amp;<a class="code" href="group__context.html#ga065eb6b7a781dcc329dd6084c42d8eca">g_bootloaderContext</a>,</div><div class="line">                                            .flashDriver = &amp;<a class="code" href="group__context.html#gaaa16dfe472e0dad9fb3a72fc607a9655">g_flashDriverInterface</a>,</div><div class="line">                                            .aesDriver = &amp;g_aesInterface }</div><div class="ttc" id="group__context_html_ga1af408d4ac511df02ef37e964b955522"><div class="ttname"><a href="group__context.html#ga1af408d4ac511df02ef37e964b955522">bootloader_user_entry</a></div><div class="ttdeci">void bootloader_user_entry(void *arg)</div><div class="ttdoc">Entry point called by a user application to run the bootloader. </div><div class="ttdef"><b>Definition:</b> bl_user_entry.c:43</div></div>
<div class="ttc" id="group__context_html_ga065eb6b7a781dcc329dd6084c42d8eca"><div class="ttname"><a href="group__context.html#ga065eb6b7a781dcc329dd6084c42d8eca">g_bootloaderContext</a></div><div class="ttdeci">bootloader_context_t g_bootloaderContext</div><div class="ttdoc">Bootloader global context data. </div><div class="ttdef"><b>Definition:</b> bl_context.c:40</div></div>
<div class="ttc" id="group__context_html_gadd35bbb0642210428dd2bade877c9b4a"><div class="ttname"><a href="group__context.html#gadd35bbb0642210428dd2bade877c9b4a">bootloaderCopyright</a></div><div class="ttdeci">const char bootloaderCopyright[]</div><div class="ttdoc">Copyright string for the bootloader. </div><div class="ttdef"><b>Definition:</b> bl_tree_root.c:116</div></div>
<div class="ttc" id="group__context_html_gaaa16dfe472e0dad9fb3a72fc607a9655"><div class="ttname"><a href="group__context.html#gaaa16dfe472e0dad9fb3a72fc607a9655">g_flashDriverInterface</a></div><div class="ttdeci">const flash_driver_interface_t g_flashDriverInterface</div><div class="ttdoc">Function table for flash driver. </div><div class="ttdef"><b>Definition:</b> bl_tree_root.c:46</div></div>
</div><!-- fragment -->
<p>Static API tree. </p>

</div>
</div>
</div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
  <ul>
    <li class="footer">Generated on Mon Mar 7 2016 16:48:23 for Kinetis Bootloader by
    <a href="http://www.doxygen.org/index.html">
    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.11 </li>
  </ul>
</div>
</body>
</html>
